#ifndef RESERVATION_H
#define RESERVATION_H

/**
  Класс Reservation служит для хранения информации о брони клиентом номера гостиницы
  */

#include <QDate>
#include <QList>

#include "../../Headers/Classes/client.h"
#include "../../Headers/Classes/room.h"
#include "../../Headers/Classes/advancedoption.h"

class Reservation
{
private:
    int id;//идентификатор брони
    Client client;//клиент
    Room room;//комната
    QDate arrivalDate;//дата приезда
    QDate departureDate;//дата отъезда
    bool isBuy;//оплачена ли бронь
    QList<AdvancedOption*> options;//дополнительные опции
public:
    Reservation();
    Reservation(int id, Client client, Room room, QDate arrivalDate, QDate departureDate, bool isBuy);
    void setId(int id);
    void setClient(Client client);
    void setRoom(Room room);
    void setArrivalDate(QDate arrivalDate);
    void setDepartureDate(QDate departureDate);
    void setIsBuy(bool isBuy);
    void setOptions(QList<AdvancedOption*> options);
    int getId();
    Client getClient();
    Room getRoom();
    QDate getArrivalDate();
    QDate getDepartureDate();
    bool getIsBuy();
    QList<AdvancedOption*> getOptions();

    int CountOfDates();//кол-во дней, проведенных в гостинице
};

#endif // RESERVATION_H
